package com.quanyan.place.service;

import com.quanyan.common.Plugin.PageObj;
import com.quanyan.place.entity.TbBizPlaceBusinessRewardRule;
import com.quanyan.place.entity.TbBizPlaceEmployee;
import com.quanyan.place.entity.apireq.ReqBusinessAwardVo;
import com.quanyan.place.entity.vo.BusinessAwardUserVo;

import java.util.List;


/**
 * Created by zhaohui on 2016/6/29.
 * 商务奖金管理接口
 */
public interface BusinessAwardService {

    /**
     * 获取指定规则
     * @param reqBusinessAwardVo
     * @return
     */
     List<TbBizPlaceBusinessRewardRule> getRewardRuleByCondition(ReqBusinessAwardVo reqBusinessAwardVo);

    /**
     * 更新指定规则
     * @param reqBusinessAwardVo
     * @return
     */
     Integer updateRewardRuleCondition(ReqBusinessAwardVo reqBusinessAwardVo);

    /**
     * 获取用户
     * @param reqBusinessAwardVo
     * @return
     */
    List<TbBizPlaceEmployee> getEmployeeInfo(ReqBusinessAwardVo reqBusinessAwardVo);


    /**
     * 商务代表指标统计
     * @return
     */
     void insertAgentStatis();

    /**
     * 计算商务代表奖金
     */
     void insertAgentAward();

    /**
     * 计算商务经理奖金
     */
     void insertBusinessManagerAward();

    /**
     * 计算城市经理奖金
     */
    void insertCityManagerAward();


    /**
     * 商务代表列表
     * @param reqBusinessAwardVo
     * @return
     */
    PageObj<List<BusinessAwardUserVo>> getBusinessAgentAward(ReqBusinessAwardVo reqBusinessAwardVo);

    /**
     * 商务主管list
     * @param reqBusinessAwardVo
     * @return
     */
    PageObj<List<BusinessAwardUserVo>> getBusinessManagerAward(ReqBusinessAwardVo reqBusinessAwardVo);

    /**
     * 城市经理
     * @param reqBusinessAwardVo
     * @return
     */
    PageObj<List<BusinessAwardUserVo>> getBusinessCityManagerAward(ReqBusinessAwardVo reqBusinessAwardVo);

    /**
     * 获取用户底薪列表
     * @param reqBusinessAwardVo
     * @return
     */
    public List<TbBizPlaceEmployee> getTbBizPlaceEmployee(ReqBusinessAwardVo reqBusinessAwardVo);

    Integer updateBatchUserSalary(ReqBusinessAwardVo reqBusinessAwardVo);
}
